Security News
The Risks of Misguided Research in Supply Chain Security
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
A simple event emitter with tools for eventual consistency. Diode only has one event.
Diode.listen(callback)
Diode.emit()
Diode can batch event subscriptions using volley
. In
short, this means that sequential publications will be clumped:
Diode.listen(callback)
for (var i = 1000; i > 0; i--) {
Diode.volley()
}
// callback will only fire once
This means that state changes which would activate multiple times, such as an action which affects multiple data stores, will trigger once. This should improve efficiency and simplify actions such as merging records.
It is also quite small (see API). We found ourselves building something similar to it on several projects and decided it was better to keep it in one place.
For React projects, Diode includes a Stateful
mixin, it expects a
getState
method that is called every time Diode publishes a
change.
First include the Stateful
mixin into a component, and provide a
getState
method:
var React = require('react/addons');
var Stateful = require('diode/stateful');
var MyStore = require('./myStore');
var Pure = React.addons.PureRenderMixin;
var Component = React.createClass({
mixins: [ Stateful, Pure ],
getState: function() {
return {
items: MyStore.all()
}
},
render: function() {
// render something purely
}
})
Then in your stores, execute 'publish' on the Diode when you want to propagate a change:
var Diode = require('diode')
var _data = []
MyStore.add = function(record) {
_data = _data.concat(record)
Diode.volley()
}
And that's it!
Diode is both an event emitter and a decorator that can add event subscription to another object:
var MyData = Diode({
data: [],
add: function(record) {
this.data.push(record)
this.publish()
}
})
Diode also supports the new
operator:
var myDiode = new Diode()
listen,subscribe
: Add a subscriptionignore,unsubscribe
: Remove a subscriptionemit,publish
: Trigger all subscriptionsvolley
: Trigger a change lazily, batched togethergetState
: This method is called by Stateful
whenever the Diode
executes emit
or volley
to update the state of a component. It
is required.4.4.0
volley
will
allow a change event to slip through every frame. This should better
support streaming change events for animation.Compressed : 592 bytes
Gzipped : 348 bytes
FAQs
A simple event emitter.
The npm package diode receives a total of 604 weekly downloads. As such, diode popularity was classified as not popular.
We found that diode demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.